package Test.test4.exam3;


import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

public class ServerTest {
    public static void main(String[] args) {
        ServerSocket sc = null;//根据参数指定的端口号来构造对象
        Socket s  = null;//根据指定主机名和端口来构造对象
        List<Socket> sockets = new ArrayList<>();//构建一个列表存储客户端对象
        try {
            sc = new ServerSocket(8888);
            System.out.println("等待客户端连接......");
            while (true){
            s = sc.accept();//侦听并接收到此套接字的连接请求
                sockets.add(s);//将客户端对象加入列表
            System.out.println("客户端"+s.getInetAddress()+"连接成功");
            new ServerThread(s,sockets).start();//启动服务器接收消息,启动接收消息发送消息线程
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        finally {
            if(null!= sc){
                try {
                    sc.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(null!=s){

                try {
                    s.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }
    }
    }

